/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.geaSV.beans;

import com.geaSV.busquedas.busquedaProveedor;
import com.geaSV.conexiones.conectarBD;
import com.geaSV.creaciones.crearProveedor;
import com.geaSV.entities.ProveedorE;
import java.awt.event.ActionEvent;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRExporter;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.util.JRLoader;
import org.primefaces.model.DefaultStreamedContent;
import org.primefaces.model.StreamedContent;





/**
 *
 * @author vash
 */
@ManagedBean
@RequestScoped
public final class proveedorBean {
  private int id;
  private String nombre;
  private String giro;
  private String razonSocial;
  private String nit;
  private String nrc;
  private String direccion;
  private String web;
  private String email;
  private String contactoP;
  private String telefono;
  private String tipoContribuyente;
  private List<ProveedorE> lstprov;
  private int idprov;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public List<ProveedorE> getLstprov() {
        return lstprov;
    }

    public void setLstprov(List<ProveedorE> lstprov) {
        this.lstprov = lstprov;
    }
  
  

    public int getIdprov() {
        return idprov;
    }

    public void setIdprov(int idprov) {
        this.idprov = idprov;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getGiro() {
        return giro;
    }

    public void setGiro(String giro) {
        this.giro = giro;
    }

    public String getRazonSocial() {
        return razonSocial;
    }

    public void setRazonSocial(String razonSocial) {
        this.razonSocial = razonSocial;
    }

    public String getNit() {
        return nit;
    }

    public void setNit(String nit) {
        this.nit = nit;
    }

    public String getNrc() {
        return nrc;
    }

    public void setNrc(String nrc) {
        this.nrc = nrc;
    }

    public String getDireccion() {
        return direccion;
    }

    public void setDireccion(String direccion) {
        this.direccion = direccion;
    }

    public String getWeb() {
        return web;
    }

    public void setWeb(String web) {
        this.web = web;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getContactoP() {
        return contactoP;
    }

    public void setContactoP(String contactoP) {
        this.contactoP = contactoP;
    }

    public String getTelefono() {
        return telefono;
    }

    public void setTelefono(String telefono) {
        this.telefono = telefono;
    }

    public String getTipoContribuyente() {
        return tipoContribuyente;
    }

    public void setTipoContribuyente(String tipoContribuyente) {
        this.tipoContribuyente = tipoContribuyente;
    }
  
public proveedorBean() throws SQLException{
llenarDataTable();
}
public void establecerParam(){
     
}

    /**
     * Creates a new instance of proveedorBean
     */
    
    
    public void llenarDataTable() throws SQLException{
    busquedaProveedor bP=new busquedaProveedor();
    this.lstprov=bP.buscarDatosProveedor();
    }
    
    public void crearProveedor() throws SQLException{
    if(direccion.equals("")||telefono.equals("")||nombre.equals("")||contactoP.equals("")){
        FacesContext.getCurrentInstance().addMessage
          (null, new FacesMessage(FacesMessage.SEVERITY_ERROR,"Debe completar los datos requeridos", null));
    }else{
    ProveedorE p=new ProveedorE();
    crearProveedor cP= new crearProveedor();
    p.setContactoP(contactoP);
    p.setDireccion(direccion);
    p.setEmail(email);
    p.setGiro(giro);
    p.setNit(nit);
    p.setNombre(nombre);
    p.setNrc(nrc);
    p.setRazonSocial(razonSocial);
    p.setTelefono(telefono);
    p.setTipoContribuyente(tipoContribuyente);
    p.setWeb(web);
    String mensaje=cP.crearProveedor(p);
    if(mensaje.contains("Error")){
FacesContext.getCurrentInstance().addMessage
          (null, new FacesMessage(FacesMessage.SEVERITY_ERROR,mensaje, null));
}else{
FacesContext.getCurrentInstance().addMessage
          (null, new FacesMessage(FacesMessage.SEVERITY_INFO,mensaje, null));
llenarDataTable();
}
    }
    }
    
      public StreamedContent getArchivoPDF() throws JRException {
 
Connection conn = conectarBD.conectar();
   
InputStream inputStream = null;
Map parameters = new HashMap();
parameters.put("id",id);
try{
 
ByteArrayOutputStream Teste = new ByteArrayOutputStream();
JasperReport jasperReport = (JasperReport)JRLoader.loadObject(getClass().getClassLoader().getResourceAsStream("/reportes/proveedorR.jasper"));
 
JasperPrint print = JasperFillManager.fillReport(jasperReport, parameters,conn);
 
JRExporter exporter = new net.sf.jasperreports.engine.export.JRPdfExporter();
 
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, Teste);
 
exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
 
exporter.exportReport();
 
inputStream = new ByteArrayInputStream(Teste.toByteArray());
 
}catch(JRException ex) {
    System.out.println("este error reporte"+ex.getMessage());
}
 
return new DefaultStreamedContent(inputStream,"application/pdf","ReporteProveedores");
 
}


}

